package com.qzh.QLanguage.constants;

public enum KeyWord {
    //////////////////数据类型////////////////////////////
    Number,
    // 布尔量，数值为0，1，默认0
    BOOL,
    //字符，使用''包围，默认''
    CHAR,
    //字符串，使用""包围，默认""
    STRING,
    //////////////////定义关键字////////////////////////////
    //全局变量
    VAR,
    //临时变量
    LET,
    //常量，可与VAR,LET联用，也可单用，单用 = CONST VAR
    CONST,
    //////////////////创建关键字////////////////////////////
    //调用构造方法
    NEW,
    //复制，如果声明CLONE方法则调用自定义CLONE，否则强制负责
    COPY,
    //////////////////删除关键字////////////////////////////
    //删除，非立即生效，只是挂载任务
    DELETE,
    //强制删除
    FORCE,
    //////////////////状态关键字////////////////////////////
    //CONST也是状态字
    //公开，在整个项目内可找到
    PUBLIC,
    //受保护,包内可见
    PROTECTED,
    //私有
    PRIVATE,
    //静态，前三个可与后两个组合使用
    STATIC,
    //变量属性,可被.直接读取可修改
    PROPERTY,
    //////////////////判断关键字////////////////////////////
    //判断前面变量是不是后面类的一个实例
    INSTANCE,
    //判断前面变量或者类是否直接继承自后面
    BELONG,
    //是否同一个变量（地址）
    IS,
    //是否同一个值 可用==代替
    EQUAL,
    //////////////////面向对象定义关键字////////////////////////////
    //定义类
    CLASS,
    //定义枚举
    ENUM,
    //定义接口
    INTERFACE,
    //定义抽象
    Abstract,
    //定义继承
    EXTEND,
    //定义实现
    apply,
    //////////////////异常处理定义关键字////////////////////////////
    //抛出
    THROW,
    //捕获
    CATCH,
    TRY,
    FINALLY,
    //////////////////循环与逻辑判断处理关键字////////////////////////////
    //循环关键字 使用方法是LOOP(i){}或者for(int i ;i<10;i++){}
    LOOP,
    //跳转代码，需要开启UNSAFE，与TAG联用,用法是 GOTO A;
    GOTO,
    //标识符，用法是TAG A:
    TAG,
    //判断，两种用法 IF(&var){}会判断var的值是不是1，IF(&var1==&var2){}判断var12是否相等
    IF,
    ELSEIF,
    ELSE,
    //////////////////结构体关键字////////////////////////////
    //定义结构体，不是类，使用STRUCT{}A来声明A结构体，并且用A a  = {}，或者NEW创建。
    STRUCT,
    //////////////////其他定义关键字////////////////////////////
    //文本输出
    PRINT,
    //警告
    WARNING,
    //抛出错误
    ERROR,


}
